package com.zzyl.service;

import com.zzyl.base.ResponseResult;
import com.zzyl.dto.CheckInDto;
import com.zzyl.vo.retreat.TasVo;

/**
 * @author sjqn
 */
public interface CheckInService {
    /**
     * 入住申请
     * @param checkInDto
     * @return
     */
    ResponseResult createCheckIn(CheckInDto checkInDto);

    /**
     * 查询入住表单
     * @param assigneeId
     * @param code
     * @param flowStatus
     * @param taskId
     * @return
     */
    ResponseResult<TasVo> getCheckIn(String assigneeId, String code, Integer flowStatus, String taskId);

    /**
     * 入住评估
     * @param checkInDto
     * @return
     */
    ResponseResult review(CheckInDto checkInDto);

    /**
     * 同意
     * @param id
     * @param taskId
     * @param message
     * @return
     */
    ResponseResult submitCheckIn(Long id, String taskId, String message);

    /**
     * 审核拒绝
     * @param id
     * @param taskId
     * @param message
     * @return
     */
    ResponseResult auditReject(Long id, String taskId, String message);

    /**
     * 驳回
     * @param id
     * @param taskId
     * @param message
     * @return
     */
    ResponseResult disapprove(Long id, String taskId, String message);

    /**
     * 撤回
     * @param id
     * @param flowStatus
     * @param taskId
     * @return
     */
    ResponseResult revocation(Long id, String flowStatus, String taskId);

    /**
     * 撤销
     * @param id
     * @param taskId
     * @return
     */
    ResponseResult cancel(Long id, String taskId);
}
